import {defineStore} from "pinia"

//引入其他模块的store
import useAp from "./other"

//定义一个store

//养成一个习惯,store的名字以use开头

let useMainStore = defineStore('main', {
    //状态
    state() {
        return {
            msg: '主要pinia^(*￣(oo)￣)^',
            nickname: '55开',
            products: []
        }
    },
    // 计算属性
    getters: {
        //如果要给计算属性传递参数,那么可以在getters的处理函数中,返回一个函数
        reverseMsg(state) {

            //另一个store
            let apStore = useAp()
            console.log('----', apStore.ap)
            // return  state.msg.split("").reverse().join("")
            //也可以通过this访问到实例
            return (payload) => {
                return this.msg.split("").reverse().join("") + '   ' + payload
            }
        }
    },
    //actions 修改状态
    actions: {
        //action可以是同步的也可以是异步的
        async getProduct(payload) {
            console.log('payload---', payload)
            try {
                //发起请求
                let res = await fetch('/api/data/index.json')
                    .then(response => response.json())

                console.log(res)
                //使用this可以访问到store实例

                this.products = res.data;

                console.log(this.products)
            } catch (e) {
                console.log(e)
            }
        }
    }
})

export default useMainStore